//
// Copyright © 2025 Hardcore Engineering Inc.
//
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License. You may
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//

export interface MtaMessage {
  envelope: {
    from: {
      address: string
    }
    to: {
      address: string
    }[]
  }
  message: {
    headers: string[][]
    contents: string
  }
}

type Headers =
  | Record<string, string | string[] | { prepared: boolean, value: string }>
  | Array<{ key: string, value: string }>

export interface MailMessage {
  from: string
  to: string[]
  subject: string
  text?: string
  html?: string
  headers?: Headers
  attachments?: {
    name: string
    contentType: string
    data: Buffer
  }[]
}

export const HulyMessageType = 'huly-mail'
